#[cfg(test)]
use kaolinite::{document::*, event::*, utils::*};
#[test]
fn double_counting() {
// Test data
let test1_map = vec![];
let test2_map = vec![(1, 1), (5, 4)];
let test3_map = vec![(1, 1), (3, 2), (6, 4), (8, 5)];
// Output
let results = vec![
dbl_count(&test1_map, true, 0),
dbl_count(&test1_map, false, 3),
dbl_count(&test2_map, true, 3),
dbl_count(&test2_map, false, 6),
dbl_count(&test3_map, true, 6),
dbl_count(&test3_map, false, 6),
];
// Verification
assert_eq!(results, vec![0, 0, 1, 2, 2, 4]);
}
#[test]
fn line_trimming() {
// Test data
let test1 = "".to_string();
let test2 = "hello world".to_string();
let test3 = "hello wor蔼t教案ld".to_string();
let test4 = "蔼教案蔼教案教蔼".to_string();
// Output
let results = vec![
trim(&test1, 0, 0),
trim(&test1, 128, 128),
trim(&test2, 6, 5),
trim(&test2, 6, 7),
trim(&test3, 0, 13),
trim(&test3, 13, 4),
trim(&test4, 1, 2),
trim(&test4, 1, 4),
];
// Verification
assert_eq!(results, vec![
"".to_string(),
"".to_string(),
"world".to_string(),
"world".to_string(),
"hello wor蔼t ".to_string(),
" 案l".to_string(),
" ".to_string(),
" 教 ".to_string(),
]);
}
#[test]
fn hashmap_utilities() {
// Test data
let mut test1 = sugars::hmap!{
0 => vec![(3, 3)],
1 => vec![(1, 1), (3, 2)],
};
let test1_1 = sugars::hmap!{
0 => vec![(3, 3), (6, 5)],
1 => vec![(1, 1), (3, 2)],
};
let test1_2 = sugars::hmap!{
0 => vec![(3, 3), (6, 5)],
1 => vec![(1, 1), (3, 2)],
2 => vec![(7, 7)],
};
// Output & Verification
hm_add(&mut test1, 0, (6, 5));
assert_eq!(test1, test1_1);
hm_add(&mut test1, 2, (7, 7));
assert_eq!(test1, test1_2);
}
#[test]
fn filetype_detection() {
// Test data
let test1 = "rs";
let test2 = "txt";
let test3 = "jsb";
let test4 = "frag";
// Output
let results = vec![
filetype(test1).unwrap_or("Unknown".to_string()),
filetype(test2).unwrap_or("Unknown".to_string()),
filetype(test3).unwrap_or("Unknown".to_string()),
filetype(test4).unwrap_or("Unknown".to_string()),
];
// Verification
assert_eq!(
results,
vec![
"Rust".to_string(),
"Plain Text".to_string(),
"Unknown".to_string(),
"GLSL".to_string(),
]
);
}
#[test]
fn errors() {
// Test data
let test1 = Error::OutOfRange;
// Output
let result = format!("{:?}", test1);
// Verification
assert_eq!(result, "OutOfRange".to_string());
}
#[test]
fn document_positioning() {
// Test data
let doc = Document::open((10, 10), "../demos/2.txt");
// Output
// Verification
}
/*
Template:
#[test]
fn name() {
// Test data
// Output
// Verification
}
*/